package ucla.axelia.controlador.servicios;

import java.util.List;
import java.util.Map;

import org.hibernate.Query;
import org.hibernate.Session;

import com.obelisco.modelo.data.DataGenerica;

import ucla.axelia.controlador.interfaces.IServicioAdministracionContenedorBusquedaReconocimientos;
import ucla.axelia.modelo.dao.ServicioReconocimientoDAO;
import ucla.axelia.modelo.data.Reconocimiento;

public class ServicioAdministracionContenedorBusquedaReconocimientos implements
		IServicioAdministracionContenedorBusquedaReconocimientos {

	private ServicioReconocimientoDAO servicioReconocimientoDAO;

	public List<Reconocimiento> buscarReconocimientoPorCriterios(Map<String, Object> criterios) {
		Session session = this.servicioReconocimientoDAO.getSessionFactory().getCurrentSession();							
		String sentencia = "select reconocimiento " +
						   "from Reconocimiento reconocimiento " +
						   "where reconocimiento.estado = :estado "; 
		for (String key : criterios.keySet())
			sentencia += "and reconocimiento." + key + " like '%" + criterios.get(key) + "%' ";
		
		sentencia += "order by cast(reconocimiento.idReconocimiento as integer)";
		Query qry = session.createQuery(sentencia);		
		qry.setString("estado", DataGenerica.DATA_ACTIVO);
		return qry.list();
	}

	public ServicioReconocimientoDAO getServicioReconocimientoDAO() {
		return servicioReconocimientoDAO;
	}

	public void setServicioReconocimientoDAO(
			ServicioReconocimientoDAO servicioReconocimientoDAO) {
		this.servicioReconocimientoDAO = servicioReconocimientoDAO;
	}
	
}
